package com.shiyi.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author qiu
 * @date 2021-01-17 下午 08:07
 * @since 1.0
 */
@Controller
@RequestMapping("/hello")
public class HelloController {

    /**
     * @RequestMapping：可以基于类上，也可以基于方法上，基于类上作用于区分不同的Controller的相同路径，作用在方法上用于设置请求路径和更细粒度的控制
     * 参数解释
     *     value：表示请求的路径
     *     params:
     *          {"username"}：表示url必须有username的参数，否则请求报错
     *          {"!username"}：表示url必须没有username的参数，否则请求报错
     *          {"username=zhangsan", "id"}：表示url必须有username和id这两个参数，并且username的值为zhangsan
     *          ?：表示匹配任意一个字符
     *          *：表示匹配任意多个字符
     *          **：表示匹配多个路径
     *     method：
     *          RequestMethod.POST：表示必须是POST请求
     *          RequestMethod.GET：表示必须是GET请求
     *          RequestMethod.PUT：表示必须是PUT请求
     *          RequestMethod.DELETE：表示必须是DELETE请求
     *     headers = {"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"}
     *          表示请求头中的参数必须要有符合条件的，比如如果请求头上的User-Agent不是Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
     *          提交会报错
     *     consumes：只接受内容类型是哪种的请求，相当于指定Content-Type
     *     consumes：返回的内容类型 Content-Type：text/html;charset=utf-8
     * @param username
     * @return
     */
    @RequestMapping(value = "/sayHello")
    public String sayHello(String username) {
        System.out.println("hello " + username);
        return "hello";
    }

}
